import spark_api
from src.spark.my_client import SparkClient
from src.config import settings

# wss调用样例
# 以下密钥信息从控制台获取
appid = settings.XINGHUO_APP_ID  # 填写控制台中获取的 APPID 信息
api_secret = settings.XINGHUO_APP_SECRET  # 填写控制台中获取的 APISecret 信息
api_key = settings.XINGHUO_APP_KEY  # 填写控制台中获取的 APIKey 信息

# 用于配置大模型版本，默认“general/generalv2”
domain = "generalv3.5"
# 云端环境的服务地址
Spark_url = "wss://spark-api.xf-yun.com/v3.5/chat"

text = []


# length = 0

def getText(role, content):
    jsoncon = {}
    jsoncon["role"] = role
    jsoncon["content"] = content
    text.append(jsoncon)
    return text


def getlength(text):
    length = 0
    for content in text:
        temp = content["content"]
        leng = len(temp)
        length += leng
    return length


def checklen(text):
    while (getlength(text) > 8000):
        del text[0]
    return text


if __name__ == '__main__':
    client = SparkClient(appid, api_key, api_secret, Spark_url, domain)
    text.clear()
    while (1):
        Input = input("\n" + "我:")
        question = checklen(getText("user", Input))
        spark_api.answer = ""
        print("大模型:", end="")
        response = client.get_response(question)
        getText("assistant", spark_api.answer)
        # print(str(text))
